<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const orders = [
        {
          id: 1,
          name: 'John Smith',
          address: '123 Main St',
          status: 'created',
          log: [
            {
              status: 'created',
              time: '2023-02-16 12:30:00',
            },
          ],
        },
        {
          id: 2,
          name: 'Jane Doe',
          address: '456 Second St',
          status: 'packed',
          log: [
            {
              status: 'created',
              time: '2023-02-16 10:00:00',
            },
            {
              status: 'packed',
              time: '2023-02-16 12:30:00',
            },
          ],
        },
        {
          id: 3,
          name: 'Bob Johnson',
          address: '789 Third St',
          status: 'shipped',
          log: [
            {
              status: 'created',
              time: '2023-02-15 10:00:00',
            },
            {
              status: 'packed',
              time: '2023-02-15 12:00:00',
            },
            {
              status: 'shipped',
              time: '2023-02-16 9:00:00',
            },
          ],
        },
      ]

      const arr = []
      function getOrdersByStatus(str) {
        orders.forEach(function (item) {
          const { id, name, address, status } = item
          if (status === str) {
            const order = { id, name, address, status, log: [] }
            item.log.forEach(function (ite, index) {
              if (ite.status === str) {
                order.log.push(ite)
              }
            })
            arr.push(order)
          }
        })
        // console.log(arr);
        return arr
      }
      console.log(getOrdersByStatus('shipped'))

      
      function getOrderStatusHistory(id) {
        const order = orders.find((order) => order.id === id)
        const log = order.log.sort((a, b) => {
          return new Date(a.time) - new Date(b.time)
        })
        const result = log
          .map((log) => `[${log.time}] ${log.status}`)
          .join('\n')
        return result
      }
      
     const res1= getOrderStatusHistory(2)
     console.log(res1);
    </script>
  </body>
</html>
